<?php

/**
 * alltosun.com 启动文件 setup.php
 * ============================================================================
 * 版权所有 (C) 2009-2011 北京互动阳光科技有限公司，并保留所有权利。
 * 网站地址: http://www.alltosun.com
 * ----------------------------------------------------------------------------
 * 许可声明：这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
 * ============================================================================
 * $Author: 高竞竞 (gaojj@alltosun.com) $
 * $Date: 2010-12-28 下午03:06:56 $
 * $Id: setup.php 13593 2012-08-09 19:46:22Z anr $
 */

// 重新开启错误报告
if (!ANPOWER) {
    ini_set('display_errors', 1);
    error_reporting(0);
} else {
    error_reporting(E_ALL);
}

//error_reporting(E_ALL);


//从框架加载类库
//require_once ANPHP_PATH.'/Exception.php';
require_once ANPHP_PATH . '/Url.php';
require_once ANPHP_PATH . '/Module.php';
require_once ANPHP_PATH . '/Form.php';

//require_once MODULE_CORE.'/helper/Url.php';
//require_once MODULE_CORE.'/helper/Module.php';
//require_once MODULE_CORE.'/helper/Form.php';
require_once MODULE_CORE . '/helper/Exception.php';
require_once MODULE_CORE . '/helper/Message.php'; //有改动
require_once MODULE_CORE . '/helper/Rule.php'; //Rule.php 有改动
require_once MODULE_CORE . '/helper/Router.php'; //Router.php有改动
require_once MODULE_CORE . '/helper/Acl.php'; //ACL没有
require_once MODULE_CORE . '/helper/Filter.php'; //filter没有
require_once MODULE_CORE . '/helper/smarty.php'; //smarty
require_once MODULE_CORE . '/helper/URLTracker.php'; //URL追踪

// 加载公用函数库
require_once MODULE_CORE . '/helper/common.php';
require_once ROOT_PATH . '/helper/common.php';
// require_once ROOT_PATH.'/helper/AnCurl.php';
// require_once MODULE_PATH.'/openapi/helper/openapi_requires.php';

require_once MODULE_PATH . '/openapi/config/openapi_config.php';

// 加载发送短信的类
require_once ROOT_PATH . '/helper/sendsms.php';

set_error_handler("an_error_handler");

// 加载Smarty
$view = new Smarty3();
$view->setTemplateDir(Config::get('template_dir'));
$view->setCompileDir(Config::get('compile_dir'));
//$view->registerFilter('pre', 'smarty_prefilter');
if (D_BUG && Request::Get('smarty', 0)) {
    $view->setDebugging(true);
    echo 'smarty:';
    var_dump(Config::get('compile_dir'));
    var_dump($view->getCompileDir());
} else {
    $view->error_reporting = E_ALL & ~E_NOTICE;
}
Response::setView($view);

// 连接MC
$mc_wr = MemcacheWrapper::connect('mc');

try {

    // 加载所有模块
    // AnModule::loadAll();

    // Session
    // 让session_name可配置 liw add
    session_name(Config::get('cookie_session_name'));
    session_set_cookie_params(time() + 3600 * 24 * 30, Config::get('cookie_path'), Config::get('cookie_domain'));
    session_cache_limiter("private, must-revalidate");
    // 正式环境多台web服务器,用单独一台memcache作为session储存 liw add
    if (!ONDEV) {
        Session::start($mc_wr);
    } else {
        session_start();
    }
    // cookie恢复会话
    user_helper::remember_me();


    // 加载项目自有的Controller
    require_once ROOT_PATH . '/Controller.php';
    Controller::dispatch();

} catch (AnFormParseException $e) {
    if (!empty($_GET['tmpdebug'])) {
        var_dump($e);
    }
    AnMessage::show($e->getMessage());
} catch (AnMessageException $e) {
    if (!empty($_GET['tmpdebug'])) {
        var_dump($e);
    }
    AnMessage::show($e->getMessageExt());
} catch (AnException $e) {
    if (!empty($_GET['tmpdebug'])) {
        var_dump($e);
    }
    AnException::echoMsg($e);
} catch (Exception $e) {
    if (!empty($_GET['tmpdebug'])) {
        var_dump($e);
    }
    throw $e;
}

header('Content-Type:text/html; charset=utf-8');
Response::flush();
?>